package holdobject;

import typeinfo.pets.Person;
import typeinfo.pets.Pet;
import typeinfo.pets.Pets;

import java.util.*;

public class InterfaceVsIterator {
    public static void display(Iterator<Pet> it){//迭代器
        while (it.hasNext()){
            Pet p=it.next();
            System.out.print(p.id()+":"+p+" ");
        }
        System.out.println();
    }

    public static void display(Collection<Pet> pets) {//共性根接口
        for (Pet p:pets){
            System.out.print(p.id()+":"+p+" ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        List<Pet> petList= Pets.arrayList(8);
        Set<Pet> petSet=new HashSet<Pet>(petList);//让List没有重复
        Map<String,Pet> petMap=new LinkedHashMap<String, Pet>();
        String[] names=("Ralph,Eric,Robin,Lacey,"+"Britney,Sam,Spot,Fluffy").split(",");
        for (int i = 0; i <names.length ; i++) {
            petMap.put(names[i],petList.get(i));//将键与值全部放进MAP里
        }
        display(petList);
        display(petSet);
        display(petList.iterator());
        display(petSet.iterator());
        System.out.println(petMap);
        System.out.println(petMap.keySet());

        display(petMap.values());
        display(petMap.values().iterator());
    }
}
